/*!
 * BottleCMS-UI v1.3.1 (http://ui.bottlecms.com)
 * Copyright 2014-2018 BottleCMS, Inc.
 * Licensed MIT 
 */
! function(e, t) {
    "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.Picker = t() : e.Picker = t()
}(this, function() {
    return function(e) {
        function t(n) {
            if (i[n]) return i[n].exports;
            var r = i[n] = {
                exports: {},
                id: n,
                loaded: !1
            };
            return e[n].call(r.exports, r, r.exports, t), r.loaded = !0, r.exports
        }
        var i = {};
        return t.m = e, t.c = i, t.p = "", t(0)
    }([function(e, t, i) {
        "use strict";

        function n(e) {
            return e && e.__esModule ? e : {
                default: e
            }
        }
        t.__esModule = !0;
        var r = i(1),
            o = n(r);
        o.default.version = "1.1.2", t.default = o.default, e.exports = t.default
    }, function(e, t, i) {
        "use strict";

        function n(e) {
            return e && e.__esModule ? e : {
                default: e
            }
        }

        function r(e, t) {
            if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
        }

        function o(e, t) {
            if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
            return !t || "object" != typeof t && "function" != typeof t ? e : t
        }

        function s(e, t) {
            if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
            e.prototype = Object.create(t && t.prototype, {
                constructor: {
                    value: e,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0
                }
            }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
        }
        t.__esModule = !0;
        var a = function() {
                function e(e, t) {
                    for (var i = 0; i < t.length; i++) {
                        var n = t[i];
                        n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
                    }
                }
                return function(t, i, n) {
                    return i && e(t.prototype, i), n && e(t, n), t
                }
            }(),
            l = i(2),
            h = n(l),
            c = i(3),
            p = n(c),
            u = i(4),
            f = i(5),
            d = i(6),
            m = n(d),
            v = i(14),
            g = n(v);
        i(15);
        var y = function(e) {
            function t(e) {
                r(this, t);
                var i = o(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
                return i.options = {
                    data: [],
                    title: "",
                    itemtit: [],
                    classname: "",
                    selectedIndex: null,
                    showCls: "show"
                }, (0, u.extend)(i.options, e), i.data = i.options.data, i.pickerEl = (0, f.createDom)((0, m.default)({
                    data: i.data,
                    title: i.options.title,
                    itemtit: i.options.itemtit,
                    classname: i.options.classname
                })), document.body.appendChild(i.pickerEl), i.maskEl = i.pickerEl.getElementsByClassName("mask-hook")[0], i.wheelEl = i.pickerEl.getElementsByClassName("wheel-hook"), i.panelEl = i.pickerEl.getElementsByClassName("panel-hook")[0], i.confirmEl = i.pickerEl.getElementsByClassName("confirm-hook")[0], i.cancelEl = i.pickerEl.getElementsByClassName("cancel-hook")[0], i.scrollEl = i.pickerEl.getElementsByClassName("wheel-scroll-hook"), i._init(), i
            }
            return s(t, e), a(t, [{
                key: "_init",
                value: function() {
                    if (this.selectedIndex = [], this.selectedVal = [], this.options.selectedIndex) this.selectedIndex = this.options.selectedIndex;
                    else
                        for (var e = 0; e < this.data.length; e++) this.selectedIndex[e] = 0;
                    this._bindEvent()
                }
            }, {
                key: "_bindEvent",
                value: function() {
                    var e = this;
                    (0, f.addEvent)(this.pickerEl, "touchmove", function(e) {
                        e.preventDefault()
                    }), (0, f.addEvent)(this.confirmEl, "click", function() {
                        e.hide();
                        for (var t = !1, i = 0; i < e.data.length; i++) {
                            var n = e.wheels[i].getSelectedIndex();
                            e.selectedIndex[i] = n;
                            var r = null;
                            e.data[i].length && (r = e.data[i][n].value), e.selectedVal[i] !== r && (t = !0), e.selectedVal[i] = r
                        }
                        e.trigger("picker.select", e.selectedVal, e.selectedIndex), t && e.trigger("picker.valuechange", e.selectedVal, e.selectedIndex)
                    }), (0, f.addEvent)(this.cancelEl, "click", function() {
                        e.hide(), e.trigger("picker.cancel")
                    })
                }
            }, {
                key: "_createWheel",
                value: function(e, t) {
                    var i = this;
                    return this.wheels[t] = new h.default(e[t], {
                            wheel: !0,
                            selectedIndex: this.selectedIndex[t]
                        }),
                        function(e) {
                            i.wheels[e].on("scrollEnd", function() {
                                var n = i.wheels[e].getSelectedIndex();
                                i.selectedIndex[t] !== n && (i.selectedIndex[t] = n, i.trigger("picker.change", e, n))
                            })
                        }(t), this.wheels[t]
                }
            }, {
                key: "show",
                value: function(e) {
                    var t = this;
                    this.pickerEl.style.display = "block";
                    var i = this.options.showCls;
                    window.setTimeout(function() {
                        if ((0, f.addClass)(t.maskEl, i), (0, f.addClass)(t.panelEl, i), t.wheels)
                            for (var n = 0; n < t.data.length; n++) t.wheels[n].enable(), t.wheels[n].wheelTo(t.selectedIndex[n]);
                        else {
                            t.wheels = [];
                            for (var r = 0; r < t.data.length; r++) t._createWheel(t.wheelEl, r)
                        }
                        e && e()
                    }, 0)
                }
            }, {
                key: "hide",
                value: function() {
                    var e = this,
                        t = this.options.showCls;
                    (0, f.removeClass)(this.maskEl, t), (0, f.removeClass)(this.panelEl, t), window.setTimeout(function() {
                        e.pickerEl.style.display = "none";
                        for (var t = 0; t < e.data.length; t++) e.wheels[t].disable()
                    }, 500)
                }
            }, {
                key: "refillColumn",
                value: function(e, t) {
                    var i = this.scrollEl[e],
                        n = this.wheels[e];
                    if (i && n) {
                        var r = this.data[e];
                        this.data[e] = t, i.innerHTML = (0, g.default)(t);
                        var o = n.getSelectedIndex(),
                            s = 0;
                        if (r.length)
                            for (var a = r[o].value, l = 0; l < t.length; l++)
                                if (t[l].value === a) {
                                    s = l;
                                    break
                                }
                        return this.selectedIndex[e] = s, n.refresh(), n.wheelTo(s), s
                    }
                }
            }, {
                key: "refill",
                value: function(e) {
                    var t = this,
                        i = [];
                    return e.length ? (e.forEach(function(e, n) {
                        i[n] = t.refillColumn(n, e)
                    }), i) : i
                }
            }, {
                key: "scrollColumn",
                value: function(e, t) {
                    var i = this.wheels[e];
                    i.wheelTo(t)
                }
            }]), t
        }(p.default);
        t.default = y, e.exports = t.default
    }, function(e, t, i) {
        ! function(t, i) {
            e.exports = i()
        }(this, function() {
            return function(e) {
                function t(n) {
                    if (i[n]) return i[n].exports;
                    var r = i[n] = {
                        exports: {},
                        id: n,
                        loaded: !1
                    };
                    return e[n].call(r.exports, r, r.exports, t), r.loaded = !0, r.exports
                }
                var i = {};
                return t.m = e, t.c = i, t.p = "/assets/", t(0)
            }([function(e, t, i) {
                "use strict";
                var n = i(1);
                n.BScroll.Version = "0.1.14", e.exports = n.BScroll
            }, function(e, t, i) {
                "use strict";

                function n(e, t) {
                    if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                }

                function r(e, t) {
                    if (!e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                    return !t || "object" != typeof t && "function" != typeof t ? e : t
                }

                function o(e, t) {
                    if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function, not " + typeof t);
                    e.prototype = Object.create(t && t.prototype, {
                        constructor: {
                            value: e,
                            enumerable: !1,
                            writable: !0,
                            configurable: !0
                        }
                    }), t && (Object.setPrototypeOf ? Object.setPrototypeOf(e, t) : e.__proto__ = t)
                }
                Object.defineProperty(t, "__esModule", {
                    value: !0
                }), t.BScroll = void 0;
                var s = function() {
                        function e(e, t) {
                            for (var i = 0; i < t.length; i++) {
                                var n = t[i];
                                n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
                            }
                        }
                        return function(t, i, n) {
                            return i && e(t.prototype, i), n && e(t, n), t
                        }
                    }(),
                    a = i(2),
                    l = 1;
                t.BScroll = function(e) {
                    function t(e, i) {
                        n(this, t);
                        var o = r(this, Object.getPrototypeOf(t).call(this));
                        return o.wrapper = "string" == typeof e ? document.querySelector(e) : e, o.scroller = o.wrapper.children[0], o.scrollerStyle = o.scroller.style, o.options = {
                            startX: 0,
                            startY: 0,
                            scrollY: !0,
                            directionLockThreshold: 5,
                            momentum: !0,
                            bounce: !0,
                            selectedIndex: 0,
                            rotate: 25,
                            wheel: !1,
                            snap: !1,
                            snapLoop: !1,
                            snapThreshold: .1,
                            swipeTime: 2500,
                            bounceTime: 700,
                            adjustTime: 400,
                            swipeBounceTime: 1200,
                            deceleration: .001,
                            momentumLimitTime: 300,
                            momentumLimitDistance: 15,
                            resizePolling: 60,
                            preventDefault: !0,
                            preventDefaultException: {
                                tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/
                            },
                            HWCompositing: !0,
                            useTransition: !0,
                            useTransform: !0
                        }, (0, a.extend)(o.options, i), o.translateZ = o.options.HWCompositing && a.hasPerspective ? " translateZ(0)" : "", o.options.useTransition = o.options.useTransition && a.hasTransition, o.options.useTransform = o.options.useTransform && a.hasTransform, o.options.eventPassthrough = o.options.eventPassthrough === !0 ? "vertical" : o.options.eventPassthrough, o.options.preventDefault = !o.options.eventPassthrough && o.options.preventDefault, o.options.scrollX = "horizontal" !== o.options.eventPassthrough && o.options.scrollX, o.options.scrollY = "vertical" !== o.options.eventPassthrough && o.options.scrollY, o.options.freeScroll = o.options.freeScroll && !o.options.eventPassthrough, o.options.directionLockThreshold = o.options.eventPassthrough ? 0 : o.options.directionLockThreshold, o.options.tap === !0 && (o.options.tap = "tap"), o._init(), o.options.snap && o._initSnap(), o.refresh(), o.options.snap || o.scrollTo(o.options.startX, o.options.startY), o.enable(), o
                    }
                    return o(t, e), s(t, [{
                        key: "_init",
                        value: function() {
                            this.x = 0, this.y = 0, this.directionX = 0, this.directionY = 0, this._addEvents()
                        }
                    }, {
                        key: "_initSnap",
                        value: function() {
                            var e = this;
                            if (this.currentPage = {}, this.options.snapLoop) {
                                var t = this.scroller.children;
                                t.length > 0 && ((0, a.prepend)(t[t.length - 1].cloneNode(!0), this.scroller), this.scroller.appendChild(t[1].cloneNode(!0)))
                            }
                            "string" == typeof this.options.snap && (this.options.snap = this.scroller.querySelectorAll(this.options.snap)), this.on("refresh", function() {
                                if (e.pages = [], e.wrapperWidth && e.wrapperHeight && e.scrollerWidth && e.scrollerHeight) {
                                    var t = e.options.snapStepX || e.wrapperWidth,
                                        i = e.options.snapStepY || e.wrapperHeight,
                                        n = 0,
                                        r = void 0,
                                        o = void 0,
                                        s = void 0,
                                        l = 0,
                                        h = void 0,
                                        c = 0,
                                        p = void 0,
                                        u = void 0,
                                        f = void 0;
                                    if (e.options.snap === !0)
                                        for (o = Math.round(t / 2), s = Math.round(i / 2); n > -e.scrollerWidth;) {
                                            for (e.pages[l] = [], h = 0, r = 0; r > -e.scrollerHeight;) e.pages[l][h] = {
                                                x: Math.max(n, e.maxScrollX),
                                                y: Math.max(r, e.maxScrollY),
                                                width: t,
                                                height: i,
                                                cx: n - o,
                                                cy: r - s
                                            }, r -= i, h++;
                                            n -= t, l++
                                        } else
                                            for (u = e.options.snap, h = u.length, p = -1; l < h; l++) f = (0, a.getRect)(u[l]), (0 === l || f.left <= (0, a.getRect)(u[l - 1]).left) && (c = 0, p++), e.pages[c] || (e.pages[c] = []), n = Math.max(-f.left, e.maxScrollX), r = Math.max(-f.top, e.maxScrollY), o = n - Math.round(f.width / 2), s = r - Math.round(f.height / 2), e.pages[c][p] = {
                                                x: n,
                                                y: r,
                                                width: f.width,
                                                height: f.height,
                                                cx: o,
                                                cy: s
                                            }, n > e.maxScrollX && c++;
                                    var d = e.options.snapLoop ? 1 : 0;
                                    e.goToPage(e.currentPage.pageX || d, e.currentPage.pageY || 0, 0), e.options.snapThreshold % 1 === 0 ? (e.snapThresholdX = e.options.snapThreshold, e.snapThresholdY = e.options.snapThreshold) : (e.snapThresholdX = Math.round(e.pages[e.currentPage.pageX][e.currentPage.pageY].width * e.options.snapThreshold), e.snapThresholdY = Math.round(e.pages[e.currentPage.pageX][e.currentPage.pageY].height * e.options.snapThreshold))
                                }
                            }), this.on("scrollEnd", function() {
                                e.options.snapLoop && (0 === e.currentPage.pageX && e.goToPage(e.pages.length - 2, e.currentPage.pageY, 0), e.currentPage.pageX === e.pages.length - 1 && e.goToPage(1, e.currentPage.pageY, 0))
                            }), this.on("flick", function() {
                                var t = e.options.snapSpeed || Math.max(Math.max(Math.min(Math.abs(e.x - e.startX), 1e3), Math.min(Math.abs(e.y - e.startY), 1e3)), 300);
                                e.goToPage(e.currentPage.pageX + e.directionX, e.currentPage.pageY + e.directionY, t)
                            })
                        }
                    }, {
                        key: "_nearestSnap",
                        value: function(e, t) {
                            if (!this.pages.length) return {
                                x: 0,
                                y: 0,
                                pageX: 0,
                                pageY: 0
                            };
                            var i = 0;
                            if (Math.abs(e - this.absStartX) < this.snapThresholdX && Math.abs(t - this.absStartY) < this.snapThresholdY) return this.currentPage;
                            e > 0 ? e = 0 : e < this.maxScrollX && (e = this.maxScrollX), t > 0 ? t = 0 : t < this.maxScrollY && (t = this.maxScrollY);
                            for (var n = this.pages.length; i < n; i++)
                                if (e >= this.pages[i][0].cx) {
                                    e = this.pages[i][0].x;
                                    break
                                }
                            n = this.pages[i].length;
                            for (var r = 0; r < n; r++)
                                if (t >= this.pages[0][r].cy) {
                                    t = this.pages[0][r].y;
                                    break
                                }
                            return i === this.currentPage.pageX && (i += this.directionX, i < 0 ? i = 0 : i >= this.pages.length && (i = this.pages.length - 1), e = this.pages[i][0].x), r === this.currentPage.pageY && (r += this.directionY, r < 0 ? r = 0 : r >= this.pages[0].length && (r = this.pages[0].length - 1), t = this.pages[0][r].y), {
                                x: e,
                                y: t,
                                pageX: i,
                                pageY: r
                            }
                        }
                    }, {
                        key: "_addEvents",
                        value: function() {
                            var e = a.addEvent;
                            this._handleEvents(e)
                        }
                    }, {
                        key: "_removeEvents",
                        value: function() {
                            var e = a.removeEvent;
                            this._handleEvents(e)
                        }
                    }, {
                        key: "_handleEvents",
                        value: function(e) {
                            var t = this.options.bindToWrapper ? this.wrapper : window;
                            e(window, "orientationchange", this), e(window, "resize", this), this.options.click && e(this.wrapper, "click", this), this.options.disableMouse || (e(this.wrapper, "mousedown", this), e(t, "mousemove", this), e(t, "mousecancel", this), e(t, "mouseup", this)), a.hasTouch && !this.options.disableTouch && (e(this.wrapper, "touchstart", this), e(t, "touchmove", this), e(t, "touchcancel", this), e(t, "touchend", this)), e(this.scroller, a.style.transitionEnd, this)
                        }
                    }, {
                        key: "_start",
                        value: function(e) {
                            var t = a.eventType[e.type];
                            if ((t === l || 0 === e.button) && this.enabled && (!this.initiated || this.initiated === t)) {
                                if (this.initiated = t, !this.options.preventDefault || a.isBadAndroid || (0, a.preventDefaultException)(e.target, this.options.preventDefaultException) || e.preventDefault(), this.moved = !1, this.distX = 0, this.distY = 0, this.directionX = 0, this.directionY = 0, this.directionLocked = 0, this._transitionTime(), this.startTime = +new Date, this.options.wheel && (this.target = e.target), this.options.useTransition && this.isInTransition) {
                                    this.isInTransition = !1;
                                    var i = this.getComputedPosition();
                                    this._translate(i.x, i.y), this.options.wheel ? this.target = this.items[Math.round(-i.y / this.itemHeight)] : this.trigger("scrollEnd")
                                }
                                var n = e.touches ? e.touches[0] : e;
                                this.startX = this.x, this.startY = this.y, this.absStartX = this.x, this.absStartY = this.y, this.pointX = n.pageX, this.pointY = n.pageY, this.trigger("beforeScrollStart")
                            }
                        }
                    }, {
                        key: "_move",
                        value: function(e) {
                            if (this.enabled && a.eventType[e.type] === this.initiated) {
                                this.options.preventDefault && e.preventDefault();
                                var t = e.touches ? e.touches[0] : e,
                                    i = t.pageX - this.pointX,
                                    n = t.pageY - this.pointY;
                                this.pointX = t.pageX, this.pointY = t.pageY, this.distX += i, this.distY += n;
                                var r = Math.abs(this.distX),
                                    o = Math.abs(this.distY),
                                    s = +new Date;
                                if (!(s - this.endTime > this.options.momentumLimitTime && o < this.options.momentumLimitDistance && r < this.options.momentumLimitDistance)) {
                                    if (this.directionLocked || this.options.freeScroll || (r > o + this.options.directionLockThreshold ? this.directionLocked = "h" : o >= r + this.options.directionLockThreshold ? this.directionLocked = "v" : this.directionLocked = "n"), "h" === this.directionLocked) {
                                        if ("vertical" === this.options.eventPassthrough) e.preventDefault();
                                        else if ("horizontal" === this.options.eventPassthrough) return void(this.initiated = !1);
                                        n = 0
                                    } else if ("v" === this.directionLocked) {
                                        if ("horizontal" === this.options.eventPassthrough) e.preventDefault();
                                        else if ("vertical" === this.options.eventPassthrough) return void(this.initiated = !1);
                                        i = 0
                                    }
                                    i = this.hasHorizontalScroll ? i : 0, n = this.hasVerticalScroll ? n : 0;
                                    var l = this.x + i,
                                        h = this.y + n;
                                    (l > 0 || l < this.maxScrollX) && (l = this.options.bounce ? this.x + i / 3 : l > 0 ? 0 : this.maxScrollX), (h > 0 || h < this.maxScrollY) && (h = this.options.bounce ? this.y + n / 3 : h > 0 ? 0 : this.maxScrollY), this.directionX = i > 0 ? -1 : i < 0 ? 1 : 0, this.directionY = n > 0 ? -1 : n < 0 ? 1 : 0, this.moved || (this.moved = !0, this.trigger("scrollStart")), this._translate(l, h), s - this.startTime > this.options.momentumLimitTime && (this.startTime = s, this.startX = this.x, this.startY = this.y, 1 === this.options.probeType && this.trigger("scroll", {
                                        x: this.x,
                                        y: this.y
                                    })), this.options.probeType > 1 && this.trigger("scroll", {
                                        x: this.x,
                                        y: this.y
                                    });
                                    var c = document.documentElement.scrollLeft || window.pageXOffset || document.body.scrollLeft,
                                        p = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop,
                                        u = this.pointX - c,
                                        f = this.pointY - p;
                                    (u > document.documentElement.clientWidth - this.options.momentumLimitDistance || u < this.options.momentumLimitDistance || f < this.options.momentumLimitDistance || f > document.documentElement.clientHeight - this.options.momentumLimitDistance) && this._end(e)
                                }
                            }
                        }
                    }, {
                        key: "_end",
                        value: function(e) {
                            if (this.enabled && a.eventType[e.type] === this.initiated && (this.initiated = !1, this.options.preventDefault && !(0, a.preventDefaultException)(e.target, this.options.preventDefaultException) && e.preventDefault(), this.trigger("touchend", {
                                    x: this.x,
                                    y: this.y
                                }), !this.resetPosition(this.options.bounceTime, a.ease.bounce))) {
                                this.isInTransition = !1;
                                var t = Math.round(this.x),
                                    i = Math.round(this.y);
                                if (!this.moved) {
                                    if (this.options.wheel) {
                                        if (this.target && "wheel-scroll" === this.target.className) {
                                            var n = Math.abs(Math.round(i / this.itemHeight)),
                                                r = Math.round((this.pointY + (0, a.offset)(this.target).top - this.itemHeight / 2) / this.itemHeight);
                                            this.target = this.items[n + r]
                                        }
                                        this.scrollToElement(this.target, this.options.adjustTime, !0, !0, a.ease.swipe)
                                    } else this.options.tap && (0, a.tap)(e, this.options.tap), this.options.click && (0, a.click)(e);
                                    return void this.trigger("scrollCancel")
                                }
                                this.scrollTo(t, i), this.endTime = +new Date;
                                var o = this.endTime - this.startTime,
                                    s = Math.abs(t - this.startX),
                                    l = Math.abs(i - this.startY);
                                if (this._events.flick && o < this.options.momentumLimitTime && s < this.options.momentumLimitDistance && l < this.options.momentumLimitDistance) return void this.trigger("flick");
                                var h = 0;
                                if (this.options.momentum && o < this.options.momentumLimitTime && (l > this.options.momentumLimitDistance || s > this.options.momentumLimitDistance)) {
                                    var c = this.hasHorizontalScroll ? (0, a.momentum)(this.x, this.startX, o, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options) : {
                                            destination: t,
                                            duration: 0
                                        },
                                        p = this.hasVerticalScroll ? (0, a.momentum)(this.y, this.startY, o, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options) : {
                                            destination: i,
                                            duration: 0
                                        };
                                    t = c.destination, i = p.destination, h = Math.max(c.duration, p.duration), this.isInTransition = 1
                                } else this.options.wheel && (i = Math.round(i / this.itemHeight) * this.itemHeight, h = this.options.adjustTime);
                                var u = a.ease.swipe;
                                if (this.options.snap) {
                                    var f = this._nearestSnap(t, i);
                                    this.currentPage = f, h = this.options.snapSpeed || Math.max(Math.max(Math.min(Math.abs(t - f.x), 1e3), Math.min(Math.abs(i - f.y), 1e3)), 300), t = f.x, i = f.y, this.directionX = 0, this.directionY = 0, u = a.ease.bounce
                                }
                                if (t !== this.x || i !== this.y) return (t > 0 || t < this.maxScrollX || i > 0 || i < this.maxScrollY) && (u = a.ease.swipeBounce), void this.scrollTo(t, i, h, u);
                                this.options.wheel && (this.selectedIndex = 0 | Math.abs(this.y / this.itemHeight)), this.trigger("scrollEnd")
                            }
                        }
                    }, {
                        key: "_resize",
                        value: function() {
                            var e = this;
                            this.enabled && (clearTimeout(this.resizeTimeout), this.resizeTimeout = setTimeout(function() {
                                e.refresh()
                            }, this.options.resizePolling))
                        }
                    }, {
                        key: "_startProbe",
                        value: function() {
                            function e() {
                                var i = t.getComputedPosition();
                                t.trigger("scroll", i), t.isInTransition && (t.probeTimer = (0, a.requestAnimationFrame)(e))
                            }(0, a.cancelAnimationFrame)(this.probeTimer), this.probeTimer = (0, a.requestAnimationFrame)(e);
                            var t = this
                        }
                    }, {
                        key: "_transitionTime",
                        value: function() {
                            var e = this,
                                t = arguments.length <= 0 || void 0 === arguments[0] ? 0 : arguments[0];
                            if (this.scrollerStyle[a.style.transitionDuration] = t + "ms", this.options.wheel && !a.isBadAndroid)
                                for (var i = 0; i < this.items.length; i++) this.items[i].style[a.style.transitionDuration] = t + "ms";
                            !t && a.isBadAndroid && (this.scrollerStyle[a.style.transitionDuration] = "0.001s", (0, a.requestAnimationFrame)(function() {
                                "0.0001ms" === e.scrollerStyle[a.style.transitionDuration] && (e.scrollerStyle[a.style.transitionDuration] = "0s")
                            }))
                        }
                    }, {
                        key: "_transitionTimingFunction",
                        value: function(e) {
                            if (this.scrollerStyle[a.style.transitionTimingFunction] = e, this.options.wheel && !a.isBadAndroid)
                                for (var t = 0; t < this.items.length; t++) this.items[t].style[a.style.transitionTimingFunction] = e
                        }
                    }, {
                        key: "_transitionEnd",
                        value: function(e) {
                            e.target === this.scroller && this.isInTransition && (this._transitionTime(), this.resetPosition(this.options.bounceTime, a.ease.bounce) || (this.isInTransition = !1, this.trigger("scrollEnd")))
                        }
                    }, {
                        key: "_translate",
                        value: function(e, t) {
                            if (this.options.useTransform ? this.scrollerStyle[a.style.transform] = "translate(" + e + "px," + t + "px)" + this.translateZ : (e = Math.round(e), t = Math.round(t), this.scrollerStyle.left = e + "px", this.scrollerStyle.top = t + "px"), this.options.wheel && !a.isBadAndroid)
                                for (var i = 0; i < this.items.length; i++) {
                                    var n = this.options.rotate * (t / this.itemHeight + i);
                                    (n == 0 ? this.items[i].classList.add("active") : this.items[i].classList.remove("active"));
                                }
                            this.x = e, this.y = t
                        }
                    }, {
                        key: "enable",
                        value: function() {
                            this.enabled = !0
                        }
                    }, {
                        key: "disable",
                        value: function() {
                            this.enabled = !1
                        }
                    }, {
                        key: "refresh",
                        value: function() {
                            this.wrapper.offsetHeight;
                            this.wrapperWidth = parseInt(this.wrapper.style.width) || this.wrapper.clientWidth, this.wrapperHeight = parseInt(this.wrapper.style.height) || this.wrapper.clientHeight, this.scrollerWidth = parseInt(this.scroller.style.width) || this.scroller.clientWidth, this.scrollerHeight = parseInt(this.scroller.style.height) || this.scroller.clientHeight, this.options.wheel ? (this.items = this.scroller.children, this.options.itemHeight = this.itemHeight = this.items.length ? this.items[0].clientHeight : 0, void 0 === this.selectedIndex && (this.selectedIndex = this.options.selectedIndex), this.options.startY = -this.selectedIndex * this.itemHeight, this.maxScrollX = 0, this.maxScrollY = -this.itemHeight * (this.items.length - 1)) : (this.maxScrollX = this.wrapperWidth - this.scrollerWidth, this.maxScrollY = this.wrapperHeight - this.scrollerHeight), this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0, this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0, this.hasHorizontalScroll || (this.maxScrollX = 0, this.scrollerWidth = this.wrapperWidth), this.hasVerticalScroll || (this.maxScrollY = 0, this.scrollerHeight = this.wrapperHeight), this.endTime = 0, this.directionX = 0, this.directionY = 0, this.wrapperOffset = (0, a.offset)(this.wrapper), this.trigger("refresh"), this.resetPosition()
                        }
                    }, {
                        key: "resetPosition",
                        value: function() {
                            var e = arguments.length <= 0 || void 0 === arguments[0] ? 0 : arguments[0],
                                t = arguments.length <= 1 || void 0 === arguments[1] ? a.ease.bounce : arguments[1],
                                i = this.x;
                            !this.hasHorizontalScroll || i > 0 ? i = 0 : i < this.maxScrollX && (i = this.maxScrollX);
                            var n = this.y;
                            return !this.hasVerticalScroll || n > 0 ? n = 0 : n < this.maxScrollY && (n = this.maxScrollY), (i !== this.x || n !== this.y) && (this.scrollTo(i, n, e, t), !0)
                        }
                    }, {
                        key: "wheelTo",
                        value: function(e) {
                            this.options.wheel && (this.y = -e * this.itemHeight, this.scrollTo(0, this.y))
                        }
                    }, {
                        key: "scrollBy",
                        value: function(e, t) {
                            var i = arguments.length <= 2 || void 0 === arguments[2] ? 0 : arguments[2],
                                n = arguments.length <= 3 || void 0 === arguments[3] ? a.ease.bounce : arguments[3];
                            e = this.x + e, t = this.y + t, this.scrollTo(e, t, i, n)
                        }
                    }, {
                        key: "scrollTo",
                        value: function(e, t, i) {
                            var n = arguments.length <= 3 || void 0 === arguments[3] ? a.ease.bounce : arguments[3];
                            this.isInTransition = this.options.useTransition && i > 0 && (e !== this.x || t !== this.y), i && !this.options.useTransition || (this._transitionTimingFunction(n.style), this._transitionTime(i), this._translate(e, t), i && 3 === this.options.probeType && this._startProbe(), this.options.wheel && (t > 0 ? this.selectedIndex = 0 : t < this.maxScrollY ? this.selectedIndex = this.items.length - 1 : this.selectedIndex = 0 | Math.abs(t / this.itemHeight)))
                        }
                    }, {
                        key: "getSelectedIndex",
                        value: function() {
                            return this.options.wheel && this.selectedIndex
                        }
                    }, {
                        key: "getCurrentPage",
                        value: function() {
                            return this.options.snap && this.currentPage
                        }
                    }, {
                        key: "scrollToElement",
                        value: function(e, t, i, n, r) {
                            if (e && (e = e.nodeType ? e : this.scroller.querySelector(e), !this.options.wheel || "wheel-item" === e.className)) {
                                var o = (0, a.offset)(e);
                                o.left -= this.wrapperOffset.left, o.top -= this.wrapperOffset.top, i === !0 && (i = Math.round(e.offsetWidth / 2 - this.wrapper.offsetWidth / 2)), n === !0 && (n = Math.round(e.offsetHeight / 2 - this.wrapper.offsetHeight / 2)), o.left -= i || 0, o.top -= n || 0, o.left = o.left > 0 ? 0 : o.left < this.maxScrollX ? this.maxScrollX : o.left, o.top = o.top > 0 ? 0 : o.top < this.maxScrollY ? this.maxScrollY : o.top, this.options.wheel && (o.top = Math.round(o.top / this.itemHeight) * this.itemHeight), t = void 0 === t || null === t || "auto" === t ? Math.max(Math.abs(this.x - o.left), Math.abs(this.y - o.top)) : t, this.scrollTo(o.left, o.top, t, r)
                            }
                        }
                    }, {
                        key: "getComputedPosition",
                        value: function() {
                            var e = window.getComputedStyle(this.scroller, null),
                                t = void 0,
                                i = void 0;
                            return this.options.useTransform ? (e = e[a.style.transform].split(")")[0].split(", "), t = +(e[12] || e[4]), i = +(e[13] || e[5])) : (t = +e.left.replace(/[^-\d.]/g, ""), i = +e.top.replace(/[^-\d.]/g, "")), {
                                x: t,
                                y: i
                            }
                        }
                    }, {
                        key: "goToPage",
                        value: function(e, t, i) {
                            var n = arguments.length <= 3 || void 0 === arguments[3] ? a.ease.bounce : arguments[3];
                            e >= this.pages.length ? e = this.pages.length - 1 : e < 0 && (e = 0), t >= this.pages[e].length ? t = this.pages[e].length - 1 : t < 0 && (t = 0);
                            var r = this.pages[e][t].x,
                                o = this.pages[e][t].y;
                            i = void 0 === i ? this.options.snapSpeed || Math.max(Math.max(Math.min(Math.abs(r - this.x), 1e3), Math.min(Math.abs(o - this.y), 1e3)), 300) : i, this.currentPage = {
                                x: r,
                                y: o,
                                pageX: e,
                                pageY: t
                            }, this.scrollTo(r, o, i, n)
                        }
                    }, {
                        key: "next",
                        value: function(e, t) {
                            var i = this.currentPage.pageX,
                                n = this.currentPage.pageY;
                            i++, i >= this.pages.length && this.hasVerticalScroll && (i = 0, n++), this.goToPage(i, n, e, t)
                        }
                    }, {
                        key: "prev",
                        value: function(e, t) {
                            var i = this.currentPage.pageX,
                                n = this.currentPage.pageY;
                            i--, i < 0 && this.hasVerticalScroll && (i = 0, n--), this.goToPage(i, n, e, t)
                        }
                    }, {
                        key: "destroy",
                        value: function() {
                            this._removeEvents(), this.trigger("destroy")
                        }
                    }, {
                        key: "handleEvent",
                        value: function(e) {
                            switch (e.type) {
                                case "touchstart":
                                case "mousedown":
                                    this._start(e);
                                    break;
                                case "touchmove":
                                case "mousemove":
                                    this._move(e);
                                    break;
                                case "touchend":
                                case "mouseup":
                                case "touchcancel":
                                case "mousecancel":
                                    this._end(e);
                                    break;
                                case "orientationchange":
                                case "resize":
                                    this._resize();
                                    break;
                                case "transitionend":
                                case "webkitTransitionEnd":
                                case "oTransitionEnd":
                                case "MSTransitionEnd":
                                    this._transitionEnd(e);
                                    break;
                                case "click":
                                    !this.enabled || e._constructed || /(SELECT|INPUT|TEXTAREA)/i.test(e.target.tagName) || (e.preventDefault(), e.stopPropagation())
                            }
                        }
                    }]), t
                }(a.EventEmitter)
            }, function(e, t, i) {
                "use strict";
                Object.defineProperty(t, "__esModule", {
                    value: !0
                });
                var n = i(3);
                Object.keys(n).forEach(function(e) {
                    "default" !== e && "__esModule" !== e && Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: function() {
                            return n[e]
                        }
                    })
                });
                var r = i(4);
                Object.keys(r).forEach(function(e) {
                    "default" !== e && "__esModule" !== e && Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: function() {
                            return r[e]
                        }
                    })
                });
                var o = i(5);
                Object.keys(o).forEach(function(e) {
                    "default" !== e && "__esModule" !== e && Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: function() {
                            return o[e]
                        }
                    })
                });
                var s = i(6);
                Object.keys(s).forEach(function(e) {
                    "default" !== e && "__esModule" !== e && Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: function() {
                            return s[e]
                        }
                    })
                });
                var a = i(7);
                Object.keys(a).forEach(function(e) {
                    "default" !== e && "__esModule" !== e && Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: function() {
                            return a[e]
                        }
                    })
                });
                var l = i(8);
                Object.keys(l).forEach(function(e) {
                    "default" !== e && "__esModule" !== e && Object.defineProperty(t, e, {
                        enumerable: !0,
                        get: function() {
                            return l[e]
                        }
                    })
                })
            }, function(e, t) {
                "use strict";

                function i(e) {
                    return f !== !1 && ("standard" === f ? e : f + e.charAt(0).toUpperCase() + e.substr(1))
                }

                function n(e, t, i, n) {
                    e.addEventListener(t, i, {
                        passive: !1,
                        capture: !!n
                    })
                }

                function r(e, t, i, n) {
                    e.removeEventListener(t, i, !!n)
                }

                function o(e) {
                    for (var t = 0, i = 0; e;) t -= e.offsetLeft, i -= e.offsetTop, e = e.offsetParent;
                    return {
                        left: t,
                        top: i
                    }
                }

                function s(e) {
                    if (e instanceof window.SVGElement) {
                        var t = e.getBoundingClientRect();
                        return {
                            top: t.top,
                            left: t.left,
                            width: t.width,
                            height: t.height
                        }
                    }
                    return {
                        top: e.offsetTop,
                        left: e.offsetLeft,
                        width: e.offsetWidth,
                        height: e.offsetHeight
                    }
                }

                function a(e, t) {
                    for (var i in t)
                        if (t[i].test(e[i])) return !0;
                    return !1
                }

                function l(e, t) {
                    var i = document.createEvent("Event");
                    i.initEvent(t, !0, !0), i.pageX = e.pageX, i.pageY = e.pageY, e.target.dispatchEvent(i)
                }

                function h(e) {
                    var t = e.target;
                    if (!/(SELECT|INPUT|TEXTAREA)/i.test(t.tagName)) {
                        var i = document.createEvent(window.MouseEvent ? "MouseEvents" : "Event");
                        i.initEvent("click", !0, !0), i._constructed = !0, t.dispatchEvent(i)
                    }
                }

                function c(e, t) {
                    t.firstChild ? p(e, t.firstChild) : t.appendChild(e)
                }

                function p(e, t) {
                    t.parentNode.insertBefore(e, t)
                }
                Object.defineProperty(t, "__esModule", {
                    value: !0
                }), t.addEvent = n, t.removeEvent = r, t.offset = o, t.getRect = s, t.preventDefaultException = a, t.tap = l, t.click = h, t.prepend = c, t.before = p;
                var u = document.createElement("div").style,
                    f = function() {
                        var e = {
                            webkit: "webkitTransform",
                            Moz: "MozTransform",
                            O: "OTransform",
                            ms: "msTransform",
                            standard: "transform"
                        };
                        for (var t in e)
                            if (void 0 !== u[e[t]]) return t;
                        return !1
                    }(),
                    d = i("transform"),
                    m = (t.hasPerspective = i("perspective") in u, t.hasTouch = "ontouchstart" in window, t.hasTransform = d !== !1, t.hasTransition = i("transition") in u, t.style = {
                        transform: d,
                        transitionTimingFunction: i("transitionTimingFunction"),
                        transitionDuration: i("transitionDuration"),
                        transitionDelay: i("transitionDelay"),
                        transformOrigin: i("transformOrigin"),
                        transitionEnd: i("transitionEnd")
                    }, 1),
                    v = 2;
                t.eventType = {
                    touchstart: m,
                    touchmove: m,
                    touchend: m,
                    mousedown: v,
                    mousemove: v,
                    mouseup: v
                }
            }, function(e, t) {
                "use strict";
                Object.defineProperty(t, "__esModule", {
                    value: !0
                });
                t.isBadAndroid = /Android /.test(window.navigator.appVersion) && !/Chrome\/\d/.test(window.navigator.appVersion)
            }, function(e, t) {
                "use strict";
                Object.defineProperty(t, "__esModule", {
                    value: !0
                });
                t.ease = {
                    swipe: {
                        style: "cubic-bezier(0.23, 1, 0.32, 1)",
                        fn: function(e) {
                            return 1 + --e * e * e * e * e
                        }
                    },
                    swipeBounce: {
                        style: "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
                        fn: function(e) {
                            return e * (2 - e)
                        }
                    },
                    bounce: {
                        style: "cubic-bezier(0.165, 0.84, 0.44, 1)",
                        fn: function(e) {
                            return 1 - --e * e * e * e
                        }
                    }
                }
            }, function(e, t) {
                "use strict";

                function i(e) {
                    if (Array.isArray(e)) {
                        for (var t = 0, i = Array(e.length); t < e.length; t++) i[t] = e[t];
                        return i
                    }
                    return Array.from(e)
                }

                function n(e, t) {
                    if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
                }
                Object.defineProperty(t, "__esModule", {
                    value: !0
                });
                var r = function() {
                        function e(e, t) {
                            var i = [],
                                n = !0,
                                r = !1,
                                o = void 0;
                            try {
                                for (var s, a = e[Symbol.iterator](); !(n = (s = a.next()).done) && (i.push(s.value), !t || i.length !== t); n = !0);
                            } catch (e) {
                                r = !0, o = e
                            } finally {
                                try {
                                    !n && a.return && a.return()
                                } finally {
                                    if (r) throw o
                                }
                            }
                            return i
                        }
                        return function(t, i) {
                            if (Array.isArray(t)) return t;
                            if (Symbol.iterator in Object(t)) return e(t, i);
                            throw new TypeError("Invalid attempt to destructure non-iterable instance")
                        }
                    }(),
                    o = function() {
                        function e(e, t) {
                            for (var i = 0; i < t.length; i++) {
                                var n = t[i];
                                n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
                            }
                        }
                        return function(t, i, n) {
                            return i && e(t.prototype, i), n && e(t, n), t
                        }
                    }();
                t.EventEmitter = function() {
                    function e() {
                        n(this, e), this._events = {}
                    }
                    return o(e, [{
                        key: "on",
                        value: function(e, t) {
                            var i = arguments.length <= 2 || void 0 === arguments[2] ? this : arguments[2];
                            this._events[e] || (this._events[e] = []), this._events[e].push([t, i])
                        }
                    }, {
                        key: "once",
                        value: function(e, t) {
                            function i() {
                                this.off(e, i), r || (r = !0, t.apply(n, arguments))
                            }
                            var n = arguments.length <= 2 || void 0 === arguments[2] ? this : arguments[2],
                                r = !1;
                            this.on(e, i)
                        }
                    }, {
                        key: "off",
                        value: function(e, t) {
                            var i = this._events[e];
                            if (i)
                                for (var n = i.length; n--;) i[n][0] === t && (i[n][0] = void 0)
                        }
                    }, {
                        key: "trigger",
                        value: function(e) {
                            var t = this._events[e];
                            if (t)
                                for (var n = t.length, o = [].concat(i(t)), s = 0; s < n; s++) {
                                    var a = o[s],
                                        l = r(a, 2),
                                        h = l[0],
                                        c = l[1];
                                    h && h.apply(c, [].slice.call(arguments, 1))
                                }
                        }
                    }]), e
                }()
            }, function(e, t) {
                "use strict";

                function i(e, t, i, n, r, o) {
                    var s = e - t,
                        a = Math.abs(s) / i,
                        l = o.deceleration,
                        h = o.itemHeight,
                        c = o.swipeBounceTime,
                        p = o.bounceTime,
                        u = o.swipeTime,
                        f = o.wheel ? 4 : 15,
                        d = e + a / l * (s < 0 ? -1 : 1);
                    return o.wheel && h && (d = Math.round(d / h) * h), d < n ? (d = r ? n - r / f * a : n, u = c - p) : d > 0 && (d = r ? r / f * a : 0, u = c - p), {
                        destination: Math.round(d),
                        duration: u
                    }
                }
                Object.defineProperty(t, "__esModule", {
                    value: !0
                }), t.momentum = i
            }, function(e, t) {
                "use strict";

                function i(e, t) {
                    for (var i in t) e[i] = t[i]
                }
                Object.defineProperty(t, "__esModule", {
                    value: !0
                }), t.extend = i;
                var n = 100 / 60;
                t.requestAnimationFrame = function() {
                    return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || function(e) {
                        return window.setTimeout(e, (e.interval || n) / 2)
                    }
                }(), t.cancelAnimationFrame = function() {
                    return window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || function(e) {
                        window.clearTimeout(e)
                    }
                }()
            }])
        })
    }, function(e, t) {
        "use strict";

        function i(e) {
            if (Array.isArray(e)) {
                for (var t = 0, i = Array(e.length); t < e.length; t++) i[t] = e[t];
                return i
            }
            return Array.from(e)
        }

        function n(e, t) {
            if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
        }
        t.__esModule = !0;
        var r = function() {
                function e(e, t) {
                    var i = [],
                        n = !0,
                        r = !1,
                        o = void 0;
                    try {
                        for (var s, a = e[Symbol.iterator](); !(n = (s = a.next()).done) && (i.push(s.value), !t || i.length !== t); n = !0);
                    } catch (e) {
                        r = !0, o = e
                    } finally {
                        try {
                            !n && a.return && a.return()
                        } finally {
                            if (r) throw o
                        }
                    }
                    return i
                }
                return function(t, i) {
                    if (Array.isArray(t)) return t;
                    if (Symbol.iterator in Object(t)) return e(t, i);
                    throw new TypeError("Invalid attempt to destructure non-iterable instance")
                }
            }(),
            o = function() {
                function e(e, t) {
                    for (var i = 0; i < t.length; i++) {
                        var n = t[i];
                        n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
                    }
                }
                return function(t, i, n) {
                    return i && e(t.prototype, i), n && e(t, n), t
                }
            }(),
            s = function() {
                function e() {
                    n(this, e), this._events = {}
                }
                return o(e, [{
                    key: "on",
                    value: function(e, t) {
                        var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this;
                        this._events[e] || (this._events[e] = []), this._events[e].push([t, i])
                    }
                }, {
                    key: "once",
                    value: function(e, t) {
                        function i() {
                            this.off(e, i), r || (r = !0, t.apply(n, arguments))
                        }
                        var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this,
                            r = !1;
                        this.on(e, i)
                    }
                }, {
                    key: "off",
                    value: function(e, t) {
                        var i = this._events[e];
                        if (i)
                            for (var n = i.length; n--;) i[n][0] === t && (i[n][0] = void 0)
                    }
                }, {
                    key: "trigger",
                    value: function(e) {
                        var t = this._events[e];
                        if (t)
                            for (var n = t.length, o = [].concat(i(t)), s = 0; s < n; s++) {
                                var a = o[s],
                                    l = r(a, 2),
                                    h = l[0],
                                    c = l[1];
                                h && h.apply(c, [].slice.call(arguments, 1))
                            }
                    }
                }]), e
            }();
        t.default = s, e.exports = t.default
    }, function(e, t) {
        "use strict";

        function i(e, t) {
            for (var i in t) e[i] = t[i]
        }
        t.__esModule = !0, t.extend = i
    }, function(e, t) {
        "use strict";

        function i(e) {
            var t = document.createElement("div");
            return t.innerHTML = e, t.childNodes[0]
        }

        function n(e, t, i, n) {
            e.addEventListener(t, i, !!n)
        }

        function r(e, t, i, n) {
            e.removeEventListener(t, i, !!n)
        }

        function o(e, t) {
            var i = new RegExp("(^|\\s)" + t + "(\\s|$)");
            return i.test(e.className)
        }

        function s(e, t) {
            if (!o(e, t)) {
                var i = e.className.split(" ");
                i.push(t), e.className = i.join(" ")
            }
        }

        function a(e, t) {
            if (o(e, t)) {
                var i = new RegExp("(^|\\s)" + t + "(\\s|$)", "g");
                e.className = e.className.replace(i, " ")
            }
        }
        t.__esModule = !0, t.createDom = i, t.addEvent = n, t.removeEvent = r, t.hasClass = o, t.addClass = s, t.removeClass = a
    }, function(e, t, i) {
        var n = i(7);
        e.exports = (n.default || n).template(function(e, t, i, n, r) {
            function o(e, t) {
                var n, r = "";
                return r += '\n          <div class="wheel wheel-hook">\n            <ul class="wheel-scroll wheel-scroll-hook">\n              ', n = i.each.call(e, e, {
                    hash: {},
                    inverse: u.noop,
                    fn: u.program(2, s, t),
                    data: t
                }), (n || 0 === n) && (r += n), r += "\n            </ul>\n          </div>\n        "
            }

            function s(e, t) {
                var n, r, o = "";
                return o += '\n                <li class="wheel-item" data-val="', (r = i.value) ? n = r.call(e, {
                    hash: {},
                    data: t
                }) : (r = e && e.value, n = typeof r === c ? r.call(e, {
                    hash: {},
                    data: t
                }) : r), o += p(n) + '">', (r = i.text) ? n = r.call(e, {
                    hash: {},
                    data: t
                }) : (r = e && e.text, n = typeof r === c ? r.call(e, {
                    hash: {},
                    data: t
                }) : r), o += p(n) + "</li>\n              "
            }

            function itemtits(itemtit) {
                var str = "";
                for (var o in itemtit) {
                    if (itemtit[o]) {
                        str += "<li><font>" + itemtit[o] + "</font></li>";
                    }
                }
                return str;
            }
            this.compilerInfo = [4, ">= 1.0.0"], i = this.merge(i, e.helpers), r = r || {};
            var a, l, h = "",
                c = "function",
                p = this.escapeExpression,
                u = this;
            return h += '<div class="picker ' + t.classname + '">\n  <div class="picker-mask mask-hook"></div>\n  <div class="picker-panel panel-hook">\n    <div class="picker-choose choose-hook">\n      <span class="cancel cancel-hook">取消</span>\n      <span class="confirm confirm-hook">确定</span>\n      </div><div class="picker-head choose-hook"><h1 class="picker-title">', (l = i.title) ? a = l.call(t, {
                    hash: {},
                    data: r
                }) : (l = t && t.title, a = typeof l === c ? l.call(t, {
                    hash: {},
                    data: r
                }) : l),
                h += p(a) + '</h1>\n    </div>\n ',
                a = t.itemtit.length > 0 && '<div class="picker-itemtit"><ul>' + itemtits(t.itemtit) + '</ul></div>', (a || 0 === a) && (h += a),
                h += '\n       <div class="picker-content">\n      <div class="mask-top border-1px"></div>\n      <div class="mask-bottom border-1px"></div>\n      <div class="wheel-wrapper wheel-wrapper-hook">\n        ', a = i.each.call(t, t && t.data, {
                    hash: {},
                    inverse: u.noop,
                    fn: u.program(1, o, r),
                    data: r
                }), (a || 0 === a) && (h += a), h += '\n      </div>\n    </div>\n    <div class="picker-footer footer-hook"></div>\n  </div>\n</div>'
        })
    }, function(e, t, i) {
        e.exports = i(8)
    }, function(e, t, i) {
        "use strict";
        var n = i(9),
            r = i(11).default,
            o = i(12).default,
            s = i(10),
            a = i(13),
            l = function() {
                var e = new n.HandlebarsEnvironment;
                return s.extend(e, n), e.SafeString = r, e.Exception = o, e.Utils = s, e.VM = a, e.template = function(t) {
                    return a.template(t, e)
                }, e
            },
            h = l();
        h.create = l, t.default = h
    }, function(e, t, i) {
        "use strict";

        function n(e, t) {
            this.helpers = e || {}, this.partials = t || {}, r(this)
        }

        function r(e) {
            e.registerHelper("helperMissing", function(e) {
                if (2 !== arguments.length) throw new a("Missing helper: '" + e + "'")
            }), e.registerHelper("blockHelperMissing", function(t, i) {
                var n = i.inverse || function() {},
                    r = i.fn;
                return u(t) && (t = t.call(this)), t === !0 ? r(this) : t === !1 || null == t ? n(this) : p(t) ? t.length > 0 ? e.helpers.each(t, i) : n(this) : r(t)
            }), e.registerHelper("each", function(e, t) {
                var i, n = t.fn,
                    r = t.inverse,
                    o = 0,
                    s = "";
                if (u(e) && (e = e.call(this)), t.data && (i = v(t.data)), e && "object" == typeof e)
                    if (p(e))
                        for (var a = e.length; o < a; o++) i && (i.index = o, i.first = 0 === o, i.last = o === e.length - 1), s += n(e[o], {
                            data: i
                        });
                    else
                        for (var l in e) e.hasOwnProperty(l) && (i && (i.key = l, i.index = o, i.first = 0 === o), s += n(e[l], {
                            data: i
                        }), o++);
                return 0 === o && (s = r(this)), s
            }), e.registerHelper("if", function(e, t) {
                return u(e) && (e = e.call(this)), !t.hash.includeZero && !e || s.isEmpty(e) ? t.inverse(this) : t.fn(this)
            }), e.registerHelper("unless", function(t, i) {
                return e.helpers.if.call(this, t, {
                    fn: i.inverse,
                    inverse: i.fn,
                    hash: i.hash
                })
            }), e.registerHelper("with", function(e, t) {
                if (u(e) && (e = e.call(this)), !s.isEmpty(e)) return t.fn(e)
            }), e.registerHelper("log", function(t, i) {
                var n = i.data && null != i.data.level ? parseInt(i.data.level, 10) : 1;
                e.log(n, t)
            })
        }

        function o(e, t) {
            m.log(e, t)
        }
        var s = i(10),
            a = i(12).default,
            l = "1.3.0";
        t.VERSION = l;
        var h = 4;
        t.COMPILER_REVISION = h;
        var c = {
            1: "<= 1.0.rc.2",
            2: "== 1.0.0-rc.3",
            3: "== 1.0.0-rc.4",
            4: ">= 1.0.0"
        };
        t.REVISION_CHANGES = c;
        var p = s.isArray,
            u = s.isFunction,
            f = s.toString,
            d = "[object Object]";
        t.HandlebarsEnvironment = n, n.prototype = {
            constructor: n,
            logger: m,
            log: o,
            registerHelper: function(e, t, i) {
                if (f.call(e) === d) {
                    if (i || t) throw new a("Arg not supported with multiple helpers");
                    s.extend(this.helpers, e)
                } else i && (t.not = i), this.helpers[e] = t
            },
            registerPartial: function(e, t) {
                f.call(e) === d ? s.extend(this.partials, e) : this.partials[e] = t
            }
        };
        var m = {
            methodMap: {
                0: "debug",
                1: "info",
                2: "warn",
                3: "error"
            },
            DEBUG: 0,
            INFO: 1,
            WARN: 2,
            ERROR: 3,
            level: 3,
            log: function(e, t) {
                if (m.level <= e) {
                    var i = m.methodMap[e];
                    "undefined" != typeof console && console[i] && console[i].call(console, t)
                }
            }
        };
        t.logger = m, t.log = o;
        var v = function(e) {
            var t = {};
            return s.extend(t, e), t
        };
        t.createFrame = v
    }, function(e, t, i) {
        "use strict";

        function n(e) {
            return l[e] || "&amp;"
        }

        function r(e, t) {
            for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i])
        }

        function o(e) {
            return e instanceof a ? e.toString() : e || 0 === e ? (e = "" + e, c.test(e) ? e.replace(h, n) : e) : ""
        }

        function s(e) {
            return !e && 0 !== e || !(!f(e) || 0 !== e.length)
        }
        var a = i(11).default,
            l = {
                "&": "&amp;",
                "<": "&lt;",
                ">": "&gt;",
                '"': "&quot;",
                "'": "&#x27;",
                "`": "&#x60;"
            },
            h = /[&<>"'`]/g,
            c = /[&<>"'`]/;
        t.extend = r;
        var p = Object.prototype.toString;
        t.toString = p;
        var u = function(e) {
            return "function" == typeof e
        };
        u(/x/) && (u = function(e) {
            return "function" == typeof e && "[object Function]" === p.call(e)
        });
        var u;
        t.isFunction = u;
        var f = Array.isArray || function(e) {
            return !(!e || "object" != typeof e) && "[object Array]" === p.call(e)
        };
        t.isArray = f, t.escapeExpression = o, t.isEmpty = s
    }, function(e, t) {
        "use strict";

        function i(e) {
            this.string = e
        }
        i.prototype.toString = function() {
            return "" + this.string
        }, t.default = i
    }, function(e, t) {
        "use strict";

        function i(e, t) {
            var i;
            t && t.firstLine && (i = t.firstLine, e += " - " + i + ":" + t.firstColumn);
            for (var r = Error.prototype.constructor.call(this, e), o = 0; o < n.length; o++) this[n[o]] = r[n[o]];
            i && (this.lineNumber = i, this.column = t.firstColumn)
        }
        var n = ["description", "fileName", "lineNumber", "message", "name", "number", "stack"];
        i.prototype = new Error, t.default = i
    }, function(e, t, i) {
        "use strict";

        function n(e) {
            var t = e && e[0] || 1,
                i = p;
            if (t !== i) {
                if (t < i) {
                    var n = u[i],
                        r = u[t];
                    throw new c("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (" + n + ") or downgrade your runtime to an older version (" + r + ").")
                }
                throw new c("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (" + e[1] + ").")
            }
        }

        function r(e, t) {
            if (!t) throw new c("No environment passed to template");
            var i = function(e, i, n, r, o, s) {
                    var a = t.VM.invokePartial.apply(this, arguments);
                    if (null != a) return a;
                    if (t.compile) {
                        var l = {
                            helpers: r,
                            partials: o,
                            data: s
                        };
                        return o[i] = t.compile(e, {
                            data: void 0 !== s
                        }, t), o[i](n, l)
                    }
                    throw new c("The partial " + i + " could not be compiled when running in runtime-only mode")
                },
                n = {
                    escapeExpression: h.escapeExpression,
                    invokePartial: i,
                    programs: [],
                    program: function(e, t, i) {
                        var n = this.programs[e];
                        return i ? n = s(e, t, i) : n || (n = this.programs[e] = s(e, t)), n
                    },
                    merge: function(e, t) {
                        var i = e || t;
                        return e && t && e !== t && (i = {}, h.extend(i, t), h.extend(i, e)), i
                    },
                    programWithDepth: t.VM.programWithDepth,
                    noop: t.VM.noop,
                    compilerInfo: null
                };
            return function(i, r) {
                r = r || {};
                var o, s, a = r.partial ? r : t;
                r.partial || (o = r.helpers, s = r.partials);
                var l = e.call(n, a, i, o, s, r.data);
                return r.partial || t.VM.checkRevision(n.compilerInfo), l
            }
        }

        function o(e, t, i) {
            var n = Array.prototype.slice.call(arguments, 3),
                r = function(e, r) {
                    return r = r || {}, t.apply(this, [e, r.data || i].concat(n))
                };
            return r.program = e, r.depth = n.length, r
        }

        function s(e, t, i) {
            var n = function(e, n) {
                return n = n || {}, t(e, n.data || i)
            };
            return n.program = e, n.depth = 0, n
        }

        function a(e, t, i, n, r, o) {
            var s = {
                partial: !0,
                helpers: n,
                partials: r,
                data: o
            };
            if (void 0 === e) throw new c("The partial " + t + " could not be found");
            if (e instanceof Function) return e(i, s)
        }

        function l() {
            return ""
        }
        var h = i(10),
            c = i(12).default,
            p = i(9).COMPILER_REVISION,
            u = i(9).REVISION_CHANGES;
        t.checkRevision = n, t.template = r, t.programWithDepth = o, t.program = s, t.invokePartial = a, t.noop = l
    }, function(e, t, i) {
        var n = i(7);
        e.exports = (n.default || n).template(function(e, t, i, n, r) {
            function o(e, t) {
                var n, r, o = "";
                return o += '\n  <li class="wheel-item" data-val="', (r = i.value) ? n = r.call(e, {
                    hash: {},
                    data: t
                }) : (r = e && e.value, n = typeof r === a ? r.call(e, {
                    hash: {},
                    data: t
                }) : r), o += l(n) + '">', (r = i.text) ? n = r.call(e, {
                    hash: {},
                    data: t
                }) : (r = e && e.text, n = typeof r === a ? r.call(e, {
                    hash: {},
                    data: t
                }) : r), o += l(n) + "</li>\n"
            }
            this.compilerInfo = [4, ">= 1.0.0"], i = this.merge(i, e.helpers), r = r || {};
            var s, a = "function",
                l = this.escapeExpression,
                h = this;
            return s = i.each.call(t, t, {
                hash: {},
                inverse: h.noop,
                fn: h.program(1, o, r),
                data: r
            }), s || 0 === s ? s : ""
        })
    }, function(e, t, i) {
        var n = i(16);
        "string" == typeof n && (n = [
            [e.id, n, ""]
        ]);
        i(18)(n, {});
        n.locals && (e.exports = n.locals)
    }, function(e, t, i) {
        t = e.exports = i(17)(), t.push([e.id, '.picker{}', ""])
    }, function(e, t) {
        e.exports = function() {
            var e = [];
            return e.toString = function() {
                for (var e = [], t = 0; t < this.length; t++) {
                    var i = this[t];
                    i[2] ? e.push("@media " + i[2] + "{" + i[1] + "}") : e.push(i[1])
                }
                return e.join("")
            }, e.i = function(t, i) {
                "string" == typeof t && (t = [
                    [null, t, ""]
                ]);
                for (var n = {}, r = 0; r < this.length; r++) {
                    var o = this[r][0];
                    "number" == typeof o && (n[o] = !0)
                }
                for (r = 0; r < t.length; r++) {
                    var s = t[r];
                    "number" == typeof s[0] && n[s[0]] || (i && !s[2] ? s[2] = i : i && (s[2] = "(" + s[2] + ") and (" + i + ")"), e.push(s))
                }
            }, e
        }
    }, function(e, t, i) {
        function n(e, t) {
            for (var i = 0; i < e.length; i++) {
                var n = e[i],
                    r = f[n.id];
                if (r) {
                    r.refs++;
                    for (var o = 0; o < r.parts.length; o++) r.parts[o](n.parts[o]);
                    for (; o < n.parts.length; o++) r.parts.push(h(n.parts[o], t))
                } else {
                    for (var s = [], o = 0; o < n.parts.length; o++) s.push(h(n.parts[o], t));
                    f[n.id] = {
                        id: n.id,
                        refs: 1,
                        parts: s
                    }
                }
            }
        }

        function r(e) {
            for (var t = [], i = {}, n = 0; n < e.length; n++) {
                var r = e[n],
                    o = r[0],
                    s = r[1],
                    a = r[2],
                    l = r[3],
                    h = {
                        css: s,
                        media: a,
                        sourceMap: l
                    };
                i[o] ? i[o].parts.push(h) : t.push(i[o] = {
                    id: o,
                    parts: [h]
                })
            }
            return t
        }

        function o(e, t) {
            var i = v(),
                n = b[b.length - 1];
            if ("top" === e.insertAt) n ? n.nextSibling ? i.insertBefore(t, n.nextSibling) : i.appendChild(t) : i.insertBefore(t, i.firstChild), b.push(t);
            else {
                if ("bottom" !== e.insertAt) throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");
                i.appendChild(t)
            }
        }

        function s(e) {
            e.parentNode.removeChild(e);
            var t = b.indexOf(e);
            t >= 0 && b.splice(t, 1)
        }

        function a(e) {
            var t = document.createElement("style");
            return t.type = "text/css", o(e, t), t
        }

        function l(e) {
            var t = document.createElement("link");
            return t.rel = "stylesheet", o(e, t), t
        }

        function h(e, t) {
            var i, n, r;
            if (t.singleton) {
                var o = y++;
                i = g || (g = a(t)), n = c.bind(null, i, o, !1), r = c.bind(null, i, o, !0)
            } else e.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (i = l(t), n = u.bind(null, i), r = function() {
                s(i), i.href && URL.revokeObjectURL(i.href)
            }) : (i = a(t), n = p.bind(null, i), r = function() {
                s(i)
            });
            return n(e),
                function(t) {
                    if (t) {
                        if (t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap) return;
                        n(e = t)
                    } else r()
                }
        }

        function c(e, t, i, n) {
            var r = i ? "" : n.css;
            if (e.styleSheet) e.styleSheet.cssText = k(t, r);
            else {
                var o = document.createTextNode(r),
                    s = e.childNodes;
                s[t] && e.removeChild(s[t]), s.length ? e.insertBefore(o, s[t]) : e.appendChild(o)
            }
        }

        function p(e, t) {
            var i = t.css,
                n = t.media;
            if (n && e.setAttribute("media", n), e.styleSheet) e.styleSheet.cssText = i;
            else {
                for (; e.firstChild;) e.removeChild(e.firstChild);
                e.appendChild(document.createTextNode(i))
            }
        }

        function u(e, t) {
            var i = t.css,
                n = t.sourceMap;
            n && (i += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(n)))) + " */");
            var r = new Blob([i], {
                    type: "text/css"
                }),
                o = e.href;
            e.href = URL.createObjectURL(r), o && URL.revokeObjectURL(o)
        }
        var f = {},
            d = function(e) {
                var t;
                return function() {
                    return "undefined" == typeof t && (t = e.apply(this, arguments)), t
                }
            },
            m = d(function() {
                return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())
            }),
            v = d(function() {
                return document.head || document.getElementsByTagName("head")[0]
            }),
            g = null,
            y = 0,
            b = [];
        e.exports = function(e, t) {
            t = t || {}, "undefined" == typeof t.singleton && (t.singleton = m()), "undefined" == typeof t.insertAt && (t.insertAt = "bottom");
            var i = r(e);
            return n(i, t),
                function(e) {
                    for (var o = [], s = 0; s < i.length; s++) {
                        var a = i[s],
                            l = f[a.id];
                        l.refs--, o.push(l)
                    }
                    if (e) {
                        var h = r(e);
                        n(h, t)
                    }
                    for (var s = 0; s < o.length; s++) {
                        var l = o[s];
                        if (0 === l.refs) {
                            for (var c = 0; c < l.parts.length; c++) l.parts[c]();
                            delete f[l.id]
                        }
                    }
                }
        };
        var k = function() {
            var e = [];
            return function(t, i) {
                return e[t] = i, e.filter(Boolean).join("\n")
            }
        }()
    }])
});
var Popfrom = function(params) {
    var p = this;
    var defaults = {
        title: "",
        data: [],
        selectedIndex: [],
        placeholder: "",
        type: '',
        showCls: "show"
    };
    params = params || {};
    for (var def in defaults) {
        if (typeof params[def] === 'undefined') {
            params[def] = defaults[def];
        }
    }
    p.params = params;
    p.init = function() {
        var ohtml = "";
        if (params.type == "text") {
            ohtml += '<input type="text" value="' + params.selectedIndex[0] + '" placeholder="' + params.placeholder + '" />';
        } else if (params.type == "textarea") {
            ohtml += '<textarea placeholder="' + params.placeholder + '" >' + params.selectedIndex[0] + '</textarea>';
        } else if (params.type == "checkbox") {
            ohtml += '<div class="checkbox">';
            for (var o in params.data) {
                var checked = "";
                for (var v in params.selectedIndex) {
                    if (params.selectedIndex[v] === params.data[o].value) {
                        checked = "checked";
                    }
                }
                ohtml += '<label><input type="checkbox" name="checkbox" ' + checked + ' value="' + params.data[o].value + '" /><span>' + params.data[o].text + '</span></label>';
            }
            ohtml += '</div>';
        }
        var html = "";
        html += '<div class="popform ' + params.type + '">';
        html += '     <div class="popform-mask mask-hook"></div>';
        html += '     <div class="popform-panel panel-hook">';
        html += '         <div class="popform-head choose-hook"><div class="popform-title">' + params.title + '</div></div>';
        html += '         <div class="popform-choose choose-hook"><span class="cancel cancel-hook">取消</span><span class="confirm confirm-hook">确定</span></div>';
        html += '         <div class="popform-content">';
        html += '             <div class="box">' + ohtml + '</div>';
        html += '         </div>';
        html += '     </div>';
        html += '</div>';
        p.popformEl = $(html);
        p._bindEvent();
        $('body').append(p.popformEl);
    };
    p._bindEvent = function() {
        $(p.popformEl).on('click', '.popform-choose .cancel', function(e) {
            p.popformEl.hide();
            p.popformEl.trigger("popform.cancel");
        });
        $(p.popformEl).on('click', '.popform-choose .confirm', function(e) {
            var value;
            if (params.type == "text") {
                value = $(p.popformEl).find('.popform-content input').val();
            } else if (params.type == "textarea") {
                value = $(p.popformEl).find('.popform-content textarea').val();
            } else if (params.type == "checkbox") {
                var ids = [];
                $(p.popformEl).find('.popform-content  input[type="checkbox"]:checked').each(function(index, el) {
                    if ($(this).val() != "") ids[ids.length] = $(this).val();
                });
                value = [ids];
            }
            $(p).trigger("popform.submit", value);
            p.popformEl.hide();
        });
    }
    p.show = function() {
        $(p.popformEl).show();
        $(p.popformEl).find('.popform-mask,.popform-panel').addClass('show');
        $(p.popformEl).find('input,textarea').focus();
    };
    p.hide = function() {
        $(p.popformEl).find('.popform-mask,.popform-panel').removeClass('show');
        setTimeout(() => {
            $(p.popformEl).hide();
        }, 200);
    };
    p.init();
    return p;
}
bottlecms.popform = {
    popform_pop: null,
    thispop: null,
    item_this: null,
    submit: null,
    object: {},
    init: function(paras) {
        var _this = this;
        paras = paras || [];
        if (paras.submit) {
            _this.submit = paras.submit;
        }
        $("[bcui-popform] [form-item-name]").each(function(index, el) {
            var name = $(this).attr("form-item-name");
            var type = $(this).attr("form-item-type");
            var value = $(this).attr("form-item-value") || "";
            var title = $(this).attr("form-item-title") || $(this).find(".item-title").text() || "";
            var unlimited = $(this).attr("form-item-unlimited") || "";
            var placeholder = $(this).attr("form-item-placeholder") || "";
            //单行文本
            if (type == "text") {
                _this.object[name] = new Popfrom({
                    type: 'text',
                    title: title,
                    data: [],
                    selectedIndex: [value],
                    placeholder: placeholder
                });
                $(_this.object[name]).on('popform.submit', function(obj, selectedVal) {
                    _this.confirm(name, selectedVal, selectedVal);
                });
            }
            //多行文本
            if (type == "textarea") {
                _this.object[name] = new Popfrom({
                    type: 'textarea',
                    title: title,
                    data: [],
                    selectedIndex: [value],
                    placeholder: placeholder
                });
                $(_this.object[name]).on('popform.submit', function(obj, selectedVal) {
                    _this.confirm(name, selectedVal, selectedVal);
                });
            }
            // 选择
            else if (type == "select") {
                var category = $(this).attr("form-item-category") || name;
                var arr;
                if ($(this).attr("form-item-data")) {
                    arr = JSON.parse($(this).attr("form-item-data"));
                } else {
                    arr = eval("BOTTLECMS_category.BC_" + category);
                }
                var data = [];
                var selected = [0]
                if (unlimited) {
                    data.push({
                        text: unlimited,
                        value: null
                    })
                }
                for (var o in arr) {
                    var kvarr = arr[o].split(":");
                    if (kvarr[0] && kvarr[1]) {
                        data.push({
                            text: kvarr[1],
                            value: kvarr[0]
                        })
                    }
                }
                if (value) {
                    for (var o in data) {
                        if (value == data[o].value) {
                            selected[0] = o;
                        }
                    }
                }
                _this.object[name] = new Picker({
                    title: title,
                    classname: "select",
                    data: [data],
                    selectedIndex: selected
                });
                _this.object[name].on('picker.select', function(selectedVal, selectedIndex) {
                    _this.confirm(name, selectedVal[0], data[selectedIndex[0]].text);
                });
            }
            //复选
            else if (type == "checkbox") {
                var category = $(this).attr("form-item-category") || name;
                var arr;
                if ($(this).attr("form-item-data")) {
                    arr = JSON.parse($(this).attr("form-item-data"));
                } else {
                    arr = eval("BOTTLECMS_category.BC_" + category);
                }
                var data = [];
                var selected = [];
                for (var o in arr) {
                    var kvarr = arr[o].split(":");
                    if (kvarr[0] && kvarr[1]) {
                        data.push({
                            text: kvarr[1],
                            value: kvarr[0]
                        })
                    }
                }
                if (value) {
                    selected = value.split(",");
                }
                _this.object[name] = new Popfrom({
                    type: 'checkbox',
                    title: title,
                    data: data,
                    selectedIndex: selected
                });
                $(_this.object[name]).on('popform.submit', function(obj, selectedVal) {
                    var value = selectedVal;
                    var text = [];
                    for (var o in data) {
                        if (value.indexOf(data[o].value) > -1) {
                            text.push(data[o].text);
                        }
                    }
                    _this.confirm(name, value, text);
                });
            }
            // range
            else if (type == "range") {
                var imin = parseInt($(this).attr("form-item-min")) || 0;
                var imax = parseInt($(this).attr("form-item-max")) || 100;
                var unit = $(this).attr("form-item-unit") || "";
                var data = [];
                var selected = [0, 0];
                if (unlimited) {
                    data.push({
                        text: unlimited,
                        value: null
                    })
                }
                for (var i = imin; i <= imax; i++) {
                    data.push({
                        text: i + unit,
                        value: i
                    })
                }
                if (value) {
                    var valuearr = value.split("~");
                    for (var o in data) {
                        if (valuearr[0] == data[o].value) {
                            selected[0] = o;
                        }
                        if (valuearr[1] == data[o].value) {
                            selected[1] = o;
                        }
                    }
                }
                _this.object[name] = new Picker({
                    title: title,
                    classname: "range",
                    data: [data, data],
                    selectedIndex: selected
                });
                _this.object[name].on('picker.select', function(selectedVal, selectedIndex) {
                    var value = (selectedVal[0] && selectedVal[1]) ? selectedVal.join('~') : null;
                    var text = value ? value : '不限';
                    _this.confirm(name, value, text);
                });
                _this.object[name].on('picker.change', function(index, selectedIndex) {
                    if (index == 0) {
                        minval = data[selectedIndex].value;
                        var tdata = [];
                        if (minval) {
                            for (var i = minval; i <= imax; i++) {
                                tdata.push({
                                    text: i + unit,
                                    value: i
                                })
                            }
                        } else {
                            tdata = data;
                        }
                        _this.object[name].refillColumn(1, tdata);
                        _this.object[name].scrollColumn(1, 0)
                    }
                });
            }
            // date
            else if (type == "date") {
                var datayearmax = parseInt($(this).attr("form-item-year-max")) || -58;
                var datayearmin = parseInt($(this).attr("form-item-year-min")) || -18;
                var date = new Date();
                var startYear = date.getFullYear() + datayearmax;
                var endYear = date.getFullYear() + datayearmin;
                var year = [];
                var month = [];
                var day = [];
                for (var i = endYear; i > startYear; i--) {
                    year.push({
                        text: i,
                        value: i
                    })
                }
                for (var i = 1; i <= 12; i++) {
                    month.push({
                        text: i,
                        value: i
                    })
                }
                var datedayobj = new Date(year[0].value, month[0].value, 0);
                for (var i = 1; i <= datedayobj.getDate(); i++) {
                    day.push({
                        text: i,
                        value: i
                    })
                }
                _this.object[name] = new Picker({
                    title: title,
                    itemtit: ['年', '月', '日'],
                    classname: "date",
                    data: [year, month, day]
                });
                _this.object[name].on('picker.select', function(selectedVal, selectedIndex) {
                    var value = selectedVal.join('-');
                    _this.confirm(name, value, value);
                });
                var yearval = year[0].value;
                var monthval = 1;
                var dayval = 1;
                _this.object[name].on('picker.change', function(index, selectedIndex) {
                    if (index == 0) {
                        yearval = year[selectedIndex].value;
                        var datedayobj = new Date(yearval, monthval, 0);
                        var tday = [];
                        for (var i = 1; i <= datedayobj.getDate(); i++) {
                            tday.push({
                                text: i,
                                value: i
                            })
                        }
                        day = tday;
                        _this.object[name].refillColumn(2, day);
                        _this.object[name].scrollColumn(2, 0)
                    } else if (index == 1) {
                        monthval = month[selectedIndex].value;
                        var datedayobj = new Date(yearval, monthval, 0);
                        var tday = [];
                        for (var i = 1; i <= datedayobj.getDate(); i++) {
                            tday.push({
                                text: i,
                                value: i
                            })
                        }
                        day = tday;
                        _this.object[name].refillColumn(2, day);
                        _this.object[name].scrollColumn(2, 0)
                    }
                });
            }
            // date
            else if (type == "datetime") {
                var datayearmax = parseInt($(this).attr("form-item-year-max")) || -58;
                var datayearmin = parseInt($(this).attr("form-item-year-min")) || -18;
                var date = new Date();
                var startYear = date.getFullYear() + datayearmax;
                var endYear = date.getFullYear() + datayearmin;
                var year = [];
                var month = [];
                var day = [];
                var hour = [];
                var minute = [];
                for (var i = endYear; i > startYear; i--) {
                    year.push({
                        text: i,
                        value: i
                    })
                }
                for (var i = 1; i <= 12; i++) {
                    var val = (Array(2).join(0) + i).slice(-2);
                    month.push({
                        text: val,
                        value: val
                    })
                }
                for (var i = 0; i <= 23; i++) {
                    var val = (Array(2).join(0) + i).slice(-2);
                    hour.push({
                        text: val,
                        value: val
                    })
                }
                for (var i = 0; i <= 59; i++) {
                    var val = (Array(2).join(0) + i).slice(-2);
                    minute.push({
                        text: val,
                        value: val
                    })
                }
                var datedayobj = new Date(year[0].value, month[0].value, 0);
                for (var i = 1; i <= datedayobj.getDate(); i++) {
                    var val = (Array(2).join(0) + i).slice(-2);
                    day.push({
                        text: val,
                        value: val
                    })
                }
                _this.object[name] = new Picker({
                    title: title,
                    itemtit: ['年', '月', '日', '时', '分'],
                    classname: "datetime",
                    data: [year, month, day, hour, minute]
                });
                _this.object[name].on('picker.select', function(selectedVal, selectedIndex) {
                    var value = selectedVal[0] + "-" + selectedVal[1] + "-" + selectedVal[2] + " " + selectedVal[3] + ":" + selectedVal[4];
                    _this.confirm(name, value, value);
                });
                var yearval = year[0].value;
                var monthval = 1;
                var dayval = 1;
                _this.object[name].on('picker.change', function(index, selectedIndex) {
                    if (index == 0) {
                        yearval = year[selectedIndex].value;
                        var datedayobj = new Date(yearval, monthval, 0);
                        var tday = [];
                        for (var i = 1; i <= datedayobj.getDate(); i++) {
                            var val = (Array(2).join(0) + i).slice(-2);
                            tday.push({
                                text: val,
                                value: val
                            })
                        }
                        day = tday;
                        _this.object[name].refillColumn(2, day);
                        _this.object[name].scrollColumn(2, 0)
                    } else if (index == 1) {
                        monthval = month[selectedIndex].value;
                        var datedayobj = new Date(yearval, monthval, 0);
                        var tday = [];
                        for (var i = 1; i <= datedayobj.getDate(); i++) {
                            var val = (Array(2).join(0) + i).slice(-2);
                            tday.push({
                                text: val,
                                value: val
                            })
                        }
                        day = tday;
                        _this.object[name].refillColumn(2, day);
                        _this.object[name].scrollColumn(2, 0)
                    }
                });
            }
            // district
            else if (type == "district") {
                var level = $(this).attr("form-item-level") || 3;
                level = level < 1 ? 1 : level;
                level = level > 4 ? 4 : level;
                var data = [];
                var selected = [];
                for (var i = 0; i < level; i++) {
                    selected[i] = 0;
                    var dataobj = [];
                    var pid = 0;
                    var prev = i - 1;
                    if (i > 0) {
                        if (value) {
                            var valuearr = value.split(".");
                            for (var o in data[prev]) {
                                if (valuearr[prev] == data[prev][o].value) {
                                    pid = data[prev][o].value;
                                }
                            }
                        } else {
                            pid = data[prev][0].value;
                        }
                    }
                    dataobj = BC_district[pid];
                    var tdata = [];
                    if (unlimited) {
                        tdata.push({
                            text: unlimited,
                            value: ""
                        })
                    }
                    for (var o in dataobj) {
                        var kvarr = dataobj[o].split(":");
                        if (kvarr[0] && kvarr[1]) {
                            tdata.push({
                                text: kvarr[1],
                                value: kvarr[0]
                            })
                        }
                    }
                    data[i] = tdata;
                }
                if (value) {
                    var valuearr = value.split(".");
                    for (var i = 0; i < level; i++) {
                        for (var o in data[i]) {
                            if (valuearr[i] == data[i][o].value) {
                                selected[i] = o;
                            }
                        }
                    }
                }
                _this.object[name] = new Picker({
                    title: title,
                    classname: "district",
                    data: data,
                    selectedIndex: selected
                });
                _this.object[name].on('picker.select', function(selectedVal, selectedIndex) {
                    var value = selectedVal.join('.');
                    var textarr = [];
                    for (var o in selectedVal) {
                        if (data[o][selectedIndex[o]]) {
                            textarr.push(data[o][selectedIndex[o]].text);
                        }
                    }
                    var text = textarr.join('.');
                    _this.confirm(name, value, text);
                });
                var districtval = [];
                _this.object[name].on('picker.change', function(index, selectedIndex) {
                    for (var i = index; i < level - 1; i++) {
                        districtval[i] = null;
                        if (i == index) {
                            districtval[i] = data[i][selectedIndex].value;
                        } else {
                            districtval[i] = data[i][0].value;
                        }
                        var nexti = i + 1;
                        var tdata = [];
                        if (districtval[i]) {
                            var dataobj = BC_district[districtval[i]];
                            if (unlimited) {
                                tdata.push({
                                    text: unlimited,
                                    value: null
                                })
                            }
                            for (var o in dataobj) {
                                var kvarr = dataobj[o].split(":");
                                if (kvarr[0] && kvarr[1]) {
                                    tdata.push({
                                        text: kvarr[1],
                                        value: kvarr[0]
                                    })
                                }
                            }
                        }
                        if (tdata.length < 1) {
                            tdata = [{
                                text: "不限",
                                value: null
                            }];
                        }
                        data[nexti] = tdata;
                        _this.object[name].scrollColumn(nexti, 0);
                        _this.object[name].refillColumn(nexti, tdata);
                        _this.object[name].scrollColumn(nexti, 0);
                    }
                });
            }
        });
        $("[bcui-popform] [form-item-name]").click(function(e) {
            _this.item_this = $(this);
            var name = $(this).attr("form-item-name");
            return _this.object[name].show();
        });
    },
    confirm: function(name, value, text) {
        var _this = this;
        var arr = {};
        arr[name] = value;
        _this.item_this.attr("form-item-value", value).find(".data").text(text);
        _this.item_this.find("input").val(value);
        if (_this.submit) {
            return _this.submit(name, value, text)
        }
    }
};